package com.tianxiabuyi.weixin.pay.base;

import com.alibaba.fastjson.annotation.JSONField;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

public class WxPayReqData extends WxPayBase {
    private String appid = "";

    @JSONField(name = "mch_id")
    private String mchId = "";

    @JSONField(name = "device_info")
    private String deviceInfo = "";

    @JSONField(name = "nonce_str")
    private String nonceStr = "";

    private String sign = "";
    private String body = "";
    private String detail = "";
    private String attach = "";

    @JSONField(name = "out_trade_no")
    private String outTradeNo = "";

    @JSONField(name = "transaction_id")
    private String transactionId = "";

    @JSONField(name = "total_fee")
    private Integer totalFee;

    @JSONField(name = "fee_type")
    private String feeType = "";

    @JSONField(name = "spbill_create_ip")
    private String spbillCreateIp = "";

    @JSONField(name = "time_start")
    private String timeStart = "";

    @JSONField(name = "time_expire")
    private String timeExpire = "";

    @JSONField(name = "notify_url")
    private String notifyUrl = "";

    @JSONField(name = "goods_tag")
    private String goodsTag = "";

    @JSONField(name = "trade_type")
    private String tradeType = "";

    @JSONField(name = "product_id")
    private String productId = "";

    @JSONField(name = "limit_pay")
    private String limitPay = "";

    private String openid = "";

    @JSONField(name = "bill_date")
    private String billDate = "";

    @JSONField(name = "bill_type")
    private String billType = "";

    public String getAppid() {
        return this.appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getMchId() {
        return this.mchId;
    }

    public void setMchId(String mchId) {
        this.mchId = mchId;
    }

    public String getDeviceInfo() {
        return this.deviceInfo;
    }

    public void setDeviceInfo(String deviceInfo) {
        this.deviceInfo = deviceInfo;
    }

    public String getNonceStr() {
        return this.nonceStr;
    }

    public void setNonceStr(String nonceStr) {
        this.nonceStr = nonceStr;
    }

    public String getSign() {
        return this.sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getBody() {
        return this.body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getDetail() {
        return this.detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }

    public String getAttach() {
        return this.attach;
    }

    public void setAttach(String attach) {
        this.attach = attach;
    }

    public String getOutTradeNo() {
        return this.outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public Integer getTotalFee() {
        return this.totalFee;
    }

    public void setTotalFee(Integer totalFee) {
        this.totalFee = totalFee;
    }

    public String getFeeType() {
        return this.feeType;
    }

    public void setFeeType(String feeType) {
        this.feeType = feeType;
    }

    public String getSpbillCreateIp() {
        return this.spbillCreateIp;
    }

    public void setSpbillCreateIp(String spbillCreateIp) {
        this.spbillCreateIp = spbillCreateIp;
    }

    public String getTimeStart() {
        return this.timeStart;
    }

    public void setTimeStart(String timeStart) {
        this.timeStart = timeStart;
    }

    public String getTimeExpire() {
        return this.timeExpire;
    }

    public void setTimeExpire(String timeExpire) {
        this.timeExpire = timeExpire;
    }

    public String getNotifyUrl() {
        return this.notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getGoodsTag() {
        return this.goodsTag;
    }

    public void setGoodsTag(String goodsTag) {
        this.goodsTag = goodsTag;
    }

    public String getTradeType() {
        return this.tradeType;
    }

    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }

    public String getProductId() {
        return this.productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getLimitPay() {
        return this.limitPay;
    }

    public void setLimitPay(String limitPay) {
        this.limitPay = limitPay;
    }

    public String getOpenid() {
        return this.openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getBillDate() {
        return billDate;
    }

    public void setBillDate(String billDate) {
        this.billDate = billDate;
    }

    public String getBillType() {
        return billType;
    }

    public void setBillType(String billType) {
        this.billType = billType;
    }

    public Map<String, Object> toMap() {
        Map map = new HashMap();
        Field[] fields = getClass().getDeclaredFields();
        for (Field field : fields) {
            try {
                Object obj = field.get(this);
                if (obj != null)
                    map.put(field.getName(), obj);
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        return map;
    }
}